#include <iostream>

using namespace std;

//1、new的基本语法
int * func()
{
    //在堆区创建整型数据
    //new 返回的是一个该数据类型的指针
    int * p = new int(10);
    return p;
}

void test01()
{
    int *p = func();
    cout << *p << endl;
    //2、在堆区利用new开辟数组
    delete p;
    cout << *p << endl;
    cout << *p << endl;
}

void test02()
{
    //在堆区创建10个整型数据的数组
    int * arr = new int[10];//[]中的10代表数组中有10个元素

    for (int i = 0; i < 10; i++)
    {
        arr[i] = i + 100;
    }

    for (int i = 0; i < 10; i ++)
    {
        cout << arr[i] << endl;
    }

    // delete arr;只能释放前几个
    //delete[] arr;也只能释放前几个
    
    for (int i = 0; i < 10; i++)
    {
        cout << arr[i] << endl;
    }
}

int main(void)
{
    test01();

    test02();

    return 0;
}